2010/02/23

[Note] Setup subversion server with Apache2, and e-mail hook

Have done this for several times recently, so I put down a note for it. On a Snow Leopard server, extra tools may be required, here is a reference.



  1. Install subversion. On a Debian-family Linux box, simply type:

    $ sudo apt-get install subversion


  2. Find a place to put the repository, for example, /usr/local/myrepo. Create your repository by typing:

    $ sudo svnadmin create /usr/local/myrepo



  3. Setup remote connection with Apache2 and WebDAV.

    1. Make sure you have apache2 installed and DAV module enabled (reference).

    2. Edit the configuration file. For example, /etc/apache2/sites/0000_xxxxx.conf

    3. Add the following code section somewhere before the </VirtualHost> tag.

      <Location "/myrepo_http">
      DAV svn
      AuthName "giftalk"
      SVNPath /usr/local/myrepo
      AuthType Basic
      AuthUserFile /usr/local/myrepo/myrepo.pw
      Order deny,allow
      <Limit GET HEAD OPTIONS CONNECT POST PROPFIND PUT DELETE PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
      Require valid-user
      </Limit>
      </Location>

    4. To restart the apache2 server:

      $ apachectl restart




  4. Add authentication mechanism with htpasswd. In the previous step we specify an file for authentication with AuthUserFile /usr/local/myrepo/myrepo.pw. To create an user account to access this repository, do:

    $ htpasswd -c /usr/local/myrepo/myrepo.pw myaccount

    And then input a password twice for the user myaccount. The option -c is used to create this file (assume it doesn't exist), and add an user named myaccount. To add more accounts or to change the password, just skip this -c option.


  5. Add e-mail hook
    This step requires either a perl or a python script, depending on your system.

    1. Go to the hooks folder in the repository, say, /usr/local/myrepo/hooks. There are many scripts with affix .tmpl within. Do:

      $ cp post-commit.tmpl post-commit


    2. Assume the system use python scripts, mailer.py. Find the script and corresponding configuration file mailer.conf from the apache2 installation, or from internet. Copy these two files into /usr/local/myrepo/hooks/, and make sure their are executable.

    3. Edit the /usr/local/myrepo/hooks/post-commit, at the end of the file, add the mailing mechanism:

      /usr/local/myrepo/hooks/mailer.py commit "$REPOS" "$REVS" /usr/local/myrepo/hooks/mailer.conf


    4. In the mailer.conf, add the e-mail address to receive the updates at the line:

      to_addr = myemail@my.email.server






Now, this repository should be able to work properly. More on access control, please see here.

2010/02/19

鼓勵

過年前被從前的老闆找去,頗受了些鼓勵,不過接著就生了重病,在床上躺了五天,連答應人家的尾牙也沒去,相當不好意思。

其實是老闆這幾年比較專心在推動科學教育上,因為他自己是做非線性動力與數值模擬出身,然後也看到這些工具在生物領域的用途,就和我聊了起來。我也樂得分享這幾年看到許多 computational something 的見聞,以及目前正在興起的 computational neuroscience,正好印證了他的看法。

講到研究,老先生人又發起了光,讓我想起當年也是受到這種熱情的感召才一頭栽進研究工作的。

老闆還是好心,知道我在準備創業,提醒我我那種沒事就掏心掏肺的待人方法很容易吃虧;還有華人社會裡還是很看重學歷,如果沒有經濟壓力,還是去拿個博士學位比較好,他覺得那對我來說不是能不能而是要不要的問題。

前幾年老闆經歷了一些打擊,我也是不久前才由同窗的口中得知。想起前幾期商周提到的教師出走專題,還是要感嘆台灣的環境。

Computational Neuroscience

又到了「計算XX學」的時間,這次講的是 computational neuroscience。這個新的領域包含的範圍更廣闊,從生理,心理,物理,數學,資訊到電機都包了。

整個領域的形成,應該始於20世紀80年代之後「認知科學」的興起,以及90年代新技術成熟之後「神經科學」的興盛,使得可學家可以由從前無法想像的觀點來了解人類心智的運作。

人類心智的運作方式,長久以來一直是很多領域關心的焦點:做市場行銷的希望知道人如何做決定,以左右消費者的購買行為;教育上,也希望配合人類思維的運作與腦部發育,設計出有效率的教學方法;工業上,也需要藉由理解人類處理資訊,與工具互動的模式,來設計更好的操作界面;政治上,候選人會希望知道怎樣的文宣和競選活動最能獲得選民的認同(嗯,或許該說是選票);醫療上,如何修復「受損的心智」,乃至於如何「增強心智」,都是歷史悠久的課題。其他諸如「讀心術」,「心智控制」,乃至於單純的好奇,無不使人對這個問題心嚮往之。

傳統上處理這個問題,有宗教的,有哲學的,也有科學的方式。科學心理學,在成型一個世紀以來,累積了相當多知識,但受限於測量的工具,常常只能由行為的表象去推測背後的心智運作。20世紀末以降,受惠於醫療科技的進展(尤其是磁共振顯影,MRI),科學家們得以直接觀察目前認為是心智的所在:腦,使得這些年在這方面的知識又有了相當多的突破,而這些科學發現通常被歸類於「神經科學」的領域。

科學家們描述這個世界的運作,很喜歡用「模型」:一些假設與規則的組合,通常可以用數學形式表達。當我們對腦部神經結構的理解到達某個程度,理所當然的會出現「腦」與「心智」的數學模型,透過模擬,來與實驗觀察的結果交互驗證。至此,「計算神經科學」的領域於焉誕生。

光從前面這段冗長的敘述,讀者大概就不難理解為什麼這個新興學門牽涉到這麼多領域的整合。數學模型的建立,是用來描述神經結構與心智現象,又要與最時髦的電子醫療科技資料相佐證,所以要能夠深入這個問題的核心,最理想的狀態,是研究人員對這些領域都有一定程度的瞭解與訓練,因此幾個世界上這個領域的先驅組織,近兩年都相繼成立新的學程,讓受訓中的研究人員(就是傳統所謂的博士生啦)在訓練階段就建立跨領域的知識。(這與過去的「跨領域整合」,通常由各自領域的專家一起合作又有不同,基本上是因為這個模式運作了30年,結果相當不理想,不過這又是另外的主題,這裡就不贅述了。)

雖然這個領域的核心在於腦與心智的運作,但是基於不同需求出發,處理這個問題的方式和希望專注的焦點也有所不同。純科學的興趣可能會在於數學模型本身,數學模型與心智的關連,或是神經結構的功能,但是醫療人員感興趣的可能是這樣的模型如何幫助腦部手術的進行,工程師可能希望能藉由理解人腦處理信息的方式來設計更有效率的演算法,甚至神經原形成的複雜結構本身也有助於設計平行計算的軟硬體(比方說目前當紅的雲端)。

目前看來,這個領域擴展的非常迅速,也應該會是接下來相當熱門的主題,有興趣的人可以連到 wikipedia entry,那裡有更詳細的說明以及資源連結。


北京印象

一月中跑了一趟北京,因為忙著公事,所以對整個城市的觀察只能說是浮光掠影。

短短一週的印象,是物質生活的水準已經相當不錯,高樓大廈林立,有地鐵,有高速道路。在當地吃了幾頓飯,發覺物價跟台北也已經不相上下,但是到超市(下榻的旅館旁邊有佳樂福)裡買東西的物價就比較低。可惜的是沒什麼機會看到書店,也只能從購物商場的書報區簡單領略一下當地人的閱讀習慣:大部份的雜誌都是外文雜誌翻譯的,像是 National Geography, Readers Digest 等等,書籍的話,商業,勵志(「成功學」那種)的書籍居多,其他的種類就少見了,最後我是順手買了幾本當地的雜誌,和一本正紅的「我們台灣這些年」回去做功課。

在北京的那幾天,適逢一場罕見的大雪剛過,天氣雖是稍帶寒意,陽光倒也是燦爛,襯托著的是當地人奮勇向前的那股熱乎的勁兒。心裡頭不時浮現小學的時候聽到的那句「2l世紀是中國的世紀」,只不過當時心目中的中國,跟現下崛起中的中國,不那麼一致,哈哈。